package com.ktgj.customer.mapper;

import java.util.List;

import com.ktgj.customer.domain.*;
import com.ktgj.customer.domain.dto.ProductListDto;
import com.ktgj.customer.domain.vo.TravelGroupVo;
import org.springframework.stereotype.Repository;

/**
 * 旅游团Mapper接口
 * 
 * @author ruoyi
 * @date 2021-10-26
 */
@Repository
public interface TravelGroupMapper 
{
    /**
     * 查询旅游团
     * 
     * @param groupId 旅游团ID
     * @return 旅游团
     */
    public TravelGroup selectTravelGroupById(Long groupId);

    /**
     * 查询旅游团列表
     * 
     * @param travelGroupDto 旅游团
     * @return 旅游团集合
     */
    public List<TravelGroupDto> selectTravelGroupList(TravelGroupDto travelGroupDto);

    /**
     * 新增旅游团
     * 
     * @param travelGroupDto 旅游团
     * @return 结果
     */
    public int insertTravelGroup(TravelGroupDto travelGroupDto);

    /**
     * 修改旅游团
     * 
     * @param travelGroupDto 旅游团
     * @return 结果
     */
    public int updateTravelGroup(TravelGroup travelGroupDto);

    /**
     * 删除旅游团
     * 
     * @param groupId 旅游团ID
     * @return 结果
     */
    public int deleteTravelGroupById(Long groupId);

    /**
     * 批量删除旅游团
     * 
     * @param groupIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteTravelGroupByIds(Long[] groupIds);

    List<TravelGroupListVo> queryGroupList();

    /**
     * 旅游产品列表
     * */
    public List<TravelGroupDto> travelGroupVoList();

    /**
     * 团类型查询数据
     * */
    public List<TravelGroup> travelGroupList(String countryType);

    /**
     * 修改旅游团状态
     * */
    public int updateStart(Long contractId);

    /**
     * 获取合同对应旅游团id
     * */
    public List<TravelGroup> travelGroupIdList(Long contractId);

    /**
     * 出团类型获取id
     * */
    public List<TravelGroup> groupIdList(String type);

    /**
     * 团状态获取id
     * */
    public List<TravelGroup> idList(String start);

    /**
     * 获取团列表
     * */
    public List<TravelGroup> productList(ProductListDto productListDto);

    /**
     * 新建团产品
     * */
    public int insertProduct(TravelGroup travelGroup);

    /**
     * 查询待修改的团
     * */
    public TravelGroup selectTravelGroup(Long id);

    /**
     * 修改团
     */
    public int group(TravelGroup travelGroup);
}
